Remotely controlled toys are very popular with children, because they allow the child to directly control the action and movement of the toy. Such toys are usually either coupled to a hand-held controller by a conductive lead or tether, or respond to radio signals transmitted by a controller. Battery driven electrical motors typically provide the power to move action toys of this type. Other action toys include onboard controls, ranging from a simple on/off switch to a keypad on which a series of program steps are entered into a memory for subsequent execution by the toy. Other battery powered toys move in ways predetermined by their design and construction, without the option for the child to significantly vary the pattern of movement.
Toys that are controlled through electrical tether lines are thereby limited in their range of motion. Ideally, a toy should be able to operate without being coupled to a hand control unit through a tether line. Radio controlled toys provide greater versatility, but require that the child constantly interact with the transmitter to control the toy's movement, its direction, and speed. Younger children can have difficulty controlling such a toy in this manner because they may not possess sufficient manual dexterity and hand-eye coordination. Toys that include a programmable controller, which can be programmed by the child, overcome this problem. One such toy, which is distributed by Milton Bradley, is called BIG TRAK; it includes a keypad on which up to sixteen program steps can be entered to direct the tank-like toy to move forward or backward, turn right or left by a defined angle, pause, and fire its "photon canon." Although the keyboard is relatively simple in layout, there is no provision for displaying successive steps as they are entered, and a child can easily loose track of the steps so that the toy does not perform as intended.
Any provision for programming a toy must be at a level that enables the average child to readily master the technique. Clearly, if the programming skills required are too difficult to acquire, the child will become frustrated with the toy and be unable to create programs that can be used to control it. Unfortunately, most microcontrollers are too simple and have memory and processing resources too limited to support a high level programming language. Instead, they execute simple control instructions that are stored in random access memory (RAM), in accordance with a machine language program that is normally stored in read only memory (ROM). Unless the user-selected control options are entered on a dedicated keypad using direction arrows and other simplifying control keys like those used by the BIG TRAK, it would unreasonable to expect a child to program a toy microcontroller. Developing a machine language program is clearly far beyond the skills of most adults and totally impractical for children in the age range from 8 to 12 years.
Toys have been developed that can be controlled by a user with a conventional personal computer. In most instances, the personal computer is linked to a microcontroller within the toy by a data line tether over which instructions are passed from the personal computer to control the toy. The user typically develops the machine instructions on the personal computer, using a line editor to make changes as required. Unfortunately, the required connection of the toy to the personal computer by the data line tether fails to solve the problem noted above. In essence, the personal computer is simply a more expensive, although more capable, hand controller. Even if the data line linking the personal computer to a toy were used to download a control program developed on the personal computer into memory within the toy, the programming skill required to develop the controlling program would be beyond that of the average child. Currently, no prior art solution to this problem is available. A method that would enable children to prepare control programs for a toy on a personal computer would have significant educational value and encourage development of programming skills. Such an approach should be suitable for use with both commercially fabricated toys and with toys built by children. For example, a construction set such as LEGO.TM. building blocks, which include motors, sensors, and other electrically accessories, could be used to build an almost unlimited variety of toys that would be controlled based on a program developed by a child.